﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace CoTuong
{
    [Serializable]
    public class QuanGeneral : QuanCo
    {
        public QuanGeneral(Texture2D texture2D, int dong, int cot, int quan, Boolean isSelected)
            : base(texture2D, dong, cot, quan, isSelected)
        {
        }

        public override void Update(Microsoft.Xna.Framework.GameTime gameTime)
        {
            if (isSelected == true)
            {
                if (quan == 0)
                {
                    #region Di Chuyển Quân Tướng Đỏ
                    if (QuanLyQuanCo.ktQuanCo[dong - 1, cot] != 1 && dong > 7)
                        this.diChuyen(dong - 1, cot);

                    if (QuanLyQuanCo.ktQuanCo[dong, cot + 1] != 1 && cot < 5)
                        this.diChuyen(dong, cot + 1);

                    if (QuanLyQuanCo.ktQuanCo[dong, cot - 1] != 1 && cot > 3)
                        this.diChuyen(dong, cot - 1);

                    if (dong < 9)
                        if (QuanLyQuanCo.ktQuanCo[dong + 1, cot] != 1)
                            this.diChuyen(dong + 1, cot);
                    #endregion
                }
                else
                {
                    #region Di Chuyển Quân Tướng Xanh
                    if (dong > 0)
                        if (QuanLyQuanCo.ktQuanCo[dong - 1, cot] != 2)
                            this.diChuyen(dong - 1, cot);

                    if (QuanLyQuanCo.ktQuanCo[dong, cot + 1] != 2 && cot < 5)
                        this.diChuyen(dong, cot + 1);

                    if (QuanLyQuanCo.ktQuanCo[dong, cot - 1] != 2 && cot > 3)
                        this.diChuyen(dong, cot - 1);

                    if (QuanLyQuanCo.ktQuanCo[dong + 1, cot] != 2 && dong < 2)
                        this.diChuyen(dong + 1, cot);
                    #endregion
                }

                ViTriDiChuyen.X = -framesizeX;
                ViTriDiChuyen.Y = -framesizeY;

            }

            base.Update(gameTime);
        }

        public override void Draw(Microsoft.Xna.Framework.GameTime gameTime, Microsoft.Xna.Framework.Graphics.SpriteBatch spriteBatch)
        {
            if (isSelected == true)
            {
                if (quan == 0)
                {
                    #region Vẽ Vị Trí Di Chuyển Quân Tướng Đỏ
                    if (QuanLyQuanCo.ktQuanCo[dong - 1, cot] != 1 && dong > 7)
                        this.VeBuocDiQuanCo(dong - 1, cot, spriteBatch);

                    if (QuanLyQuanCo.ktQuanCo[dong, cot + 1] != 1 && cot < 5)
                        this.VeBuocDiQuanCo(dong, cot + 1, spriteBatch);

                    if (QuanLyQuanCo.ktQuanCo[dong, cot - 1] != 1 && cot > 3)
                        this.VeBuocDiQuanCo(dong, cot - 1, spriteBatch);

                    if(dong < 9)
                        if (QuanLyQuanCo.ktQuanCo[dong + 1, cot] != 1)
                            this.VeBuocDiQuanCo(dong + 1, cot, spriteBatch);
                    #endregion
                }

                else
                {
                    #region Vẽ Vị Trí Di Chuyển Quân Tướng Xanh
                    if (dong > 0)
                        if (QuanLyQuanCo.ktQuanCo[dong - 1, cot] != 2)
                            this.VeBuocDiQuanCo(dong - 1, cot, spriteBatch);

                    if (QuanLyQuanCo.ktQuanCo[dong, cot + 1] != 2 && cot < 5)
                        this.VeBuocDiQuanCo(dong, cot + 1, spriteBatch);

                    if (QuanLyQuanCo.ktQuanCo[dong, cot - 1] != 2 && cot > 3)
                        this.VeBuocDiQuanCo(dong, cot - 1, spriteBatch);

                    if (QuanLyQuanCo.ktQuanCo[dong + 1, cot] != 2 && dong < 2)
                        this.VeBuocDiQuanCo(dong + 1, cot, spriteBatch);
                    #endregion
                }
            }

            base.Draw(gameTime, spriteBatch);
        }
    }
}
